﻿#pragma once

#include <stdio.h>
#include <stdlib.h>

typedef char BTDataType;

typedef struct BTNode
{
	struct BTNode* pleft;
	struct BTNode* pright;
	BTDataType data;
}BTNode;

//复制二叉树
void Copy(BTNode* T, BTNode** pNewT);

//计算二叉树的深度
int Depth(BTNode* T);

//统计二叉树中结点的个数
int NodeCount(BTNode* T);

//统计二叉树中，度为0结点的个数
int NodeCount_Zero(BTNode* T);//也就是叶子结点

//统计二叉树中，度为1结点的个数
int NodeCount_One(BTNode* T);

//统计二叉树中，度为2结点的个数
int NodeCount_Two(BTNode* T);

//先序建立二叉树
void CreatBinaryTree(BTNode** T);

//先序遍历二叉树
void PrevOrder(BTNode* T);